Conventional video compression methods include motion-compensated prediction for reducing amounts of video data to encode by exploiting temporal correlations between successive frames of a video stream. Motion-compensated prediction includes determining, for each portion (e.g., block of pixels) of a current video frame being encoded, a similar block in a reference frame (e.g., a previously encoded frame, group of frames, or portion of a frame) to be used as a predictor to encode the portion of the current video frame being encoded. For each block of a current frame to be encoded, a search of a previously encoded portion of data is performed within a reference area (i.e., search window) around a co-located block in the reference frame.
The size of the search window and its location relative to the reference frame is determined prior to the searching. Although the likelihood of determining a similar block predictor increases as the size of the search window increases (i.e., because a larger previously encoded portion of the reference frame is used for the prediction), a smaller search window constrained to a portion of a frame is typically used to reduce the size of local memory (e.g., local cache memory) used to store previously encoded data. When data between frames migrates outside the smaller search window (e.g., data corresponding to objects moving quickly between frames), however, the migrated data is not captured by the smaller sliding search window.